The coronavirus (Covid-19) outbreaks that led to a serious health crisis has brought major disruptions on the economy in many countries, including Indonesia. Firstly identified in early March 2020, the pandemic has started to affect Indonesian economy in Q1-2020. Yet the situation is even worse in Q2-2020. How bad is that? This publication is intended to explore the economic impacts of Covid-19 pandemic across Indonesian provinces from Q1 to Q2-2020. Apart from Covid-19 cases and economic growth data, we also include jobs and community mobility data from Google to capture the impact of Covid-19 outbreaks on regional employment and people mobility.

Suggested Citation:

Harry, A. Cani, R.M, Mendez, C (2020). Covid-19 pandemic and its economic impacts: An interactive exploration on Indonesian provincial data. Available at https://rpubs.com/haginta/covid19-econ-impacts-indonesia.

This work is licensed under the Creative Commons Attribution-Share Alike 4.0 International License.

knitr::opts_chunk$set(echo = TRUE, warning=FALSE)

library(tidyverse)  # Modern data science workflow
library(sf)         # Simple features for R
library(tmap)       # Thematic Maps
library(tmaptools)  # Thematic Maps Tools
library(RColorBrewer) # ColorBrewer Palettes
library(leaflet)    # Interactive web maps
library(rgdal)      # Bindings for the Geospatial Data Abstraction Library
library(rgeos)      # Interface to Geometry Engine - Open Source 


# Change the presentation of decimal numbers to 4 and avoid scientific notation
options(prompt="R> ", digits=4, scipen=999)

1 Load non-spatial data

library(readxl)
data <- read_excel("explore expandr.xlsx", 
    sheet = "Sheet1")
View(data)
df <- data %>% select(-c(4:7,9:12))

2 Load dataframe of definitions

library(readr)
df_definitions <- read_delim("df_def.csv", ";", escape_double = FALSE, 
    trim_ws = TRUE)
Parsed with column specification:
cols(
  var_name = col_character(),
  var_def = col_character(),
  source = col_character(),
  type = col_character()
)
df_definitions

3 Load shape file of Indonesian provinces

map <- read_sf("province border.shp")

4 Merge non-spatial data with spatial data

covid_map <- inner_join(
  df,
  map,
  by = "ID"
)
covid_map

5 Store data as sf object

covid_map1 <- st_as_sf(covid_map)

6 How the number of cumulative cases changes from March to June 2020?

tm_shape(covid_map1) +
  tm_polygons(c("case_chg", "rate_chg"), id = "province", palette=list("Reds", "Greens"), title=c("Change in number of cumulative cases (Mar to Jun)", "Change in rate of cumulative cases (Mar to Jun)")) +
tm_fill(style="kmeans") +
tm_layout(legend.title.size = 0.6,
          legend.text.size = 0.5,
          legend.position = c("left","bottom"))

7 How jobs and people mobility are affected?

tm_shape(covid_map1) +
  tm_polygons(c("job_loss", "mob_work"), id = "province", palette=list("Blues", "Reds"), title=c("Number of jobs affected", "Mobility to work compared to baseline")) +
tm_fill(style="kmeans") +
  tm_layout(legend.title.size = 0.5,
          legend.text.size = 0.4,
          legend.position = c("left","bottom"))

8 How much is growth impact in Q2-2020 (yoy and qtq)?

tm_shape(covid_map1) +
  tm_polygons(c("gdp_q2_yoy", "gdp_q2_qtq"), id = "province", palette=list("Reds", "Blues"), title=c("GDP growth Q2-2020 (yoy)", "GDP growth Q2-2020 (qtq)")) +
tm_fill(style="kmeans") +
  tm_layout(legend.title.size = 0.6,
          legend.text.size = 0.5,
          legend.position = c("left","bottom"))

Most of provinces recorded negative growth rate in Q2-2020. However, some provinces were able to maintain positive growth rate. They are West Papua and Papua (for yoy growth) and West Nusa Tenggara, East Nusa Tenggara, Papua, Central Sulawesi (for qtq growth).

10 Interactive map

tmap_mode("view")
tm_shape(covid_map1) + 
  tm_fill("gdp_q2_yoy",
          palette = "viridis",
          id="province",
          popup.vars=c("case_chg", "rate_chg", "job_loss", "mob_work", "gdp_q2_yoy", "gdp_q2_qtq")) + 
   tm_borders(alpha=.4) +
    tm_legend(outside=TRUE) +
  tm_layout(frame = FALSE) 

11 Interactive exploration

For further interactive data exploration, please visit the link below:

https://haginta.shinyapps.io/Covid19_econ_impacts_reg_Indonesia/

LS0tDQp0aXRsZTogIkNvdmlkLTE5IHBhbmRlbWljIGFuZCBpdHMgZWNvbm9taWMgaW1wYWN0czogQW4gaW50ZXJhY3RpdmUgZXhwbG9yYXRpb24gb24gSW5kb25lc2lhbiBwcm92aW5jaWFsIGRhdGEiDQphdXRob3I6ICJIYXJyeSBBZ2ludGEsIFJhZ2RhZCBDYW5pIE1pcmFudGksIENhcmxvcyBNZW5kZXoiDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6DQogICAgY29kZV9mb2xkaW5nOiBzaG93DQogICAgaGlnaGxpZ2h0OiBtb25vY2hyb21lDQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgICB0aGVtZTogY29zbW8NCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIHRvY19mbG9hdDoNCiAgICAgIGNvbGxhcHNlZDogbm8NCiAgICAgIHNtb290aF9zY3JvbGw6IG5vDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KICAgIGRmX3ByaW50OiBwYWdlZA0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19mbG9hdDoNCiAgICAgIGNvbGxhcHNlZDogZmFsc2UNCiAgICAgIHNtb290aF9zY3JvbGw6IGZhbHNlDQogICAgdG9jX2RlcHRoOiA0DQogICAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlDQogICAgY29kZV9mb2xkaW5nOiAic2hvdyINCiAgICB0aGVtZTogImNvc21vIg0KICAgIGhpZ2hsaWdodDogIm1vbm9jaHJvbWUiDQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0KICB3b3JkX2RvY3VtZW50OiBkZWZhdWx0DQotLS0NCg0KDQo8c3R5bGU+DQpoMS50aXRsZSB7Zm9udC1zaXplOiAxOHB0OyBjb2xvcjogRGFya0JsdWU7fSANCmJvZHksIGgxLCBoMiwgaDMsIGg0IHtmb250LWZhbWlseTogIlBhbGF0aW5vIiwgc2VyaWY7fQ0KYm9keSB7Zm9udC1zaXplOiAxMnB0O30NCi8qIEhlYWRlcnMgKi8NCmgxLGgyLGgzLGg0LGg1LGg2e2ZvbnQtc2l6ZTogMTRwdDsgY29sb3I6ICMwMDAwOEI7fQ0KYm9keSB7Y29sb3I6ICMzMzMzMzM7fQ0KYSwgYTpob3ZlciB7Y29sb3I6ICM4QjNBNjI7fQ0KcHJlIHtmb250LXNpemU6IDEycHg7fQ0KPC9zdHlsZT4NCg0KVGhlIGNvcm9uYXZpcnVzIChDb3ZpZC0xOSkgb3V0YnJlYWtzIHRoYXQgbGVkIHRvIGEgc2VyaW91cyBoZWFsdGggY3Jpc2lzIGhhcyBicm91Z2h0IG1ham9yIGRpc3J1cHRpb25zIG9uIHRoZSBlY29ub215IGluIG1hbnkgY291bnRyaWVzLCBpbmNsdWRpbmcgSW5kb25lc2lhLiBGaXJzdGx5IGlkZW50aWZpZWQgaW4gZWFybHkgTWFyY2ggMjAyMCwgdGhlIHBhbmRlbWljIGhhcyBzdGFydGVkIHRvIGFmZmVjdCBJbmRvbmVzaWFuIGVjb25vbXkgaW4gUTEtMjAyMC4gWWV0IHRoZSBzaXR1YXRpb24gaXMgZXZlbiB3b3JzZSBpbiBRMi0yMDIwLiBIb3cgYmFkIGlzIHRoYXQ/IFRoaXMgcHVibGljYXRpb24gaXMgaW50ZW5kZWQgdG8gZXhwbG9yZSB0aGUgZWNvbm9taWMgaW1wYWN0cyBvZiBDb3ZpZC0xOSBwYW5kZW1pYyBhY3Jvc3MgSW5kb25lc2lhbiBwcm92aW5jZXMgZnJvbSBRMSB0byBRMi0yMDIwLiBBcGFydCBmcm9tIENvdmlkLTE5IGNhc2VzIGFuZCBlY29ub21pYyBncm93dGggZGF0YSwgd2UgYWxzbyBpbmNsdWRlIGpvYnMgYW5kIGNvbW11bml0eSBtb2JpbGl0eSBkYXRhIGZyb20gR29vZ2xlIHRvIGNhcHR1cmUgdGhlIGltcGFjdCBvZiBDb3ZpZC0xOSBvdXRicmVha3Mgb24gcmVnaW9uYWwgZW1wbG95bWVudCBhbmQgcGVvcGxlIG1vYmlsaXR5Lg0KDQpTdWdnZXN0ZWQgQ2l0YXRpb246IA0KDQo+IEhhcnJ5LCBBLiBDYW5pLCBSLk0sIE1lbmRleiwgQyAoMjAyMCkuIF9Db3ZpZC0xOSBwYW5kZW1pYyBhbmQgaXRzIGVjb25vbWljIGltcGFjdHM6IEFuIGludGVyYWN0aXZlIGV4cGxvcmF0aW9uIG9uIEluZG9uZXNpYW4gcHJvdmluY2lhbCBkYXRhLl8gQXZhaWxhYmxlIGF0IGh0dHBzOi8vcnB1YnMuY29tL2hhZ2ludGEvY292aWQxOS1lY29uLWltcGFjdHMtaW5kb25lc2lhLg0KDQpUaGlzIHdvcmsgaXMgbGljZW5zZWQgdW5kZXIgdGhlIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmUgQWxpa2UgNC4wIEludGVybmF0aW9uYWwgTGljZW5zZS4gDQohW10oQ0NMaWNlbnNlLnBuZyl7d2lkdGg9NzVweH0NCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgd2FybmluZz1GQUxTRSkNCg0KbGlicmFyeSh0aWR5dmVyc2UpICAjIE1vZGVybiBkYXRhIHNjaWVuY2Ugd29ya2Zsb3cNCmxpYnJhcnkoc2YpICAgICAgICAgIyBTaW1wbGUgZmVhdHVyZXMgZm9yIFINCmxpYnJhcnkodG1hcCkgICAgICAgIyBUaGVtYXRpYyBNYXBzDQpsaWJyYXJ5KHRtYXB0b29scykgICMgVGhlbWF0aWMgTWFwcyBUb29scw0KbGlicmFyeShSQ29sb3JCcmV3ZXIpICMgQ29sb3JCcmV3ZXIgUGFsZXR0ZXMNCmxpYnJhcnkobGVhZmxldCkgICAgIyBJbnRlcmFjdGl2ZSB3ZWIgbWFwcw0KbGlicmFyeShyZ2RhbCkgICAgICAjIEJpbmRpbmdzIGZvciB0aGUgR2Vvc3BhdGlhbCBEYXRhIEFic3RyYWN0aW9uIExpYnJhcnkNCmxpYnJhcnkocmdlb3MpICAgICAgIyBJbnRlcmZhY2UgdG8gR2VvbWV0cnkgRW5naW5lIC0gT3BlbiBTb3VyY2UgDQoNCg0KIyBDaGFuZ2UgdGhlIHByZXNlbnRhdGlvbiBvZiBkZWNpbWFsIG51bWJlcnMgdG8gNCBhbmQgYXZvaWQgc2NpZW50aWZpYyBub3RhdGlvbg0Kb3B0aW9ucyhwcm9tcHQ9IlI+ICIsIGRpZ2l0cz00LCBzY2lwZW49OTk5KQ0KYGBgDQoNCg0KIyBMb2FkIG5vbi1zcGF0aWFsIGRhdGENCg0KYGBge3J9DQpsaWJyYXJ5KHJlYWR4bCkNCmRhdGEgPC0gcmVhZF9leGNlbCgiZXhwbG9yZSBleHBhbmRyLnhsc3giLCANCiAgICBzaGVldCA9ICJTaGVldDEiKQ0KVmlldyhkYXRhKQ0KYGBgDQoNCmBgYHtyfQ0KZGYgPC0gZGF0YSAlPiUgc2VsZWN0KC1jKDQ6Nyw5OjEyKSkNCmBgYA0KDQojIExvYWQgZGF0YWZyYW1lIG9mIGRlZmluaXRpb25zDQpgYGB7cn0NCmxpYnJhcnkocmVhZHIpDQpkZl9kZWZpbml0aW9ucyA8LSByZWFkX2RlbGltKCJkZl9kZWYuY3N2IiwgIjsiLCBlc2NhcGVfZG91YmxlID0gRkFMU0UsIA0KICAgIHRyaW1fd3MgPSBUUlVFKQ0KZGZfZGVmaW5pdGlvbnMNCmBgYA0KDQojIExvYWQgc2hhcGUgZmlsZSBvZiBJbmRvbmVzaWFuIHByb3ZpbmNlcw0KYGBge3J9DQptYXAgPC0gcmVhZF9zZigicHJvdmluY2UgYm9yZGVyLnNocCIpDQpgYGANCg0KIyBNZXJnZSBub24tc3BhdGlhbCBkYXRhIHdpdGggc3BhdGlhbCBkYXRhDQpgYGB7cn0NCmNvdmlkX21hcCA8LSBpbm5lcl9qb2luKA0KICBkZiwNCiAgbWFwLA0KICBieSA9ICJJRCINCikNCmBgYA0KDQpgYGB7cn0NCmNvdmlkX21hcA0KYGBgDQoNCiMgU3RvcmUgZGF0YSBhcyBzZiBvYmplY3QNCmBgYHtyfQ0KY292aWRfbWFwMSA8LSBzdF9hc19zZihjb3ZpZF9tYXApDQpgYGANCg0KIyBIb3cgdGhlIG51bWJlciBvZiBjdW11bGF0aXZlIGNhc2VzIGNoYW5nZXMgZnJvbSBNYXJjaCB0byBKdW5lIDIwMjA/DQoNCmBgYHtyfQ0KdG1fc2hhcGUoY292aWRfbWFwMSkgKw0KICB0bV9wb2x5Z29ucyhjKCJjYXNlX2NoZyIsICJyYXRlX2NoZyIpLCBpZCA9ICJwcm92aW5jZSIsIHBhbGV0dGU9bGlzdCgiUmVkcyIsICJHcmVlbnMiKSwgdGl0bGU9YygiQ2hhbmdlIGluIG51bWJlciBvZiBjdW11bGF0aXZlIGNhc2VzIChNYXIgdG8gSnVuKSIsICJDaGFuZ2UgaW4gcmF0ZSBvZiBjdW11bGF0aXZlIGNhc2VzIChNYXIgdG8gSnVuKSIpKSArDQp0bV9maWxsKHN0eWxlPSJrbWVhbnMiKSArDQp0bV9sYXlvdXQobGVnZW5kLnRpdGxlLnNpemUgPSAwLjYsDQogICAgICAgICAgbGVnZW5kLnRleHQuc2l6ZSA9IDAuNSwNCiAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSBjKCJsZWZ0IiwiYm90dG9tIikpDQpgYGANCg0KIyAgSG93IGpvYnMgYW5kIHBlb3BsZSBtb2JpbGl0eSBhcmUgYWZmZWN0ZWQ/DQpgYGB7cn0NCnRtX3NoYXBlKGNvdmlkX21hcDEpICsNCiAgdG1fcG9seWdvbnMoYygiam9iX2xvc3MiLCAibW9iX3dvcmsiKSwgaWQgPSAicHJvdmluY2UiLCBwYWxldHRlPWxpc3QoIkJsdWVzIiwgIlJlZHMiKSwgdGl0bGU9YygiTnVtYmVyIG9mIGpvYnMgYWZmZWN0ZWQiLCAiTW9iaWxpdHkgdG8gd29yayBjb21wYXJlZCB0byBiYXNlbGluZSIpKSArDQp0bV9maWxsKHN0eWxlPSJrbWVhbnMiKSArDQogIHRtX2xheW91dChsZWdlbmQudGl0bGUuc2l6ZSA9IDAuNSwNCiAgICAgICAgICBsZWdlbmQudGV4dC5zaXplID0gMC40LA0KICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9IGMoImxlZnQiLCJib3R0b20iKSkNCmBgYA0KDQojICBIb3cgbXVjaCBpcyBncm93dGggaW1wYWN0IGluIFEyLTIwMjAgKHlveSBhbmQgcXRxKT8NCmBgYHtyfQ0KdG1fc2hhcGUoY292aWRfbWFwMSkgKw0KICB0bV9wb2x5Z29ucyhjKCJnZHBfcTJfeW95IiwgImdkcF9xMl9xdHEiKSwgaWQgPSAicHJvdmluY2UiLCBwYWxldHRlPWxpc3QoIlJlZHMiLCAiQmx1ZXMiKSwgdGl0bGU9YygiR0RQIGdyb3d0aCBRMi0yMDIwICh5b3kpIiwgIkdEUCBncm93dGggUTItMjAyMCAocXRxKSIpKSArDQp0bV9maWxsKHN0eWxlPSJrbWVhbnMiKSArDQogIHRtX2xheW91dChsZWdlbmQudGl0bGUuc2l6ZSA9IDAuNiwNCiAgICAgICAgICBsZWdlbmQudGV4dC5zaXplID0gMC41LA0KICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9IGMoImxlZnQiLCJib3R0b20iKSkNCmBgYA0KDQpNb3N0IG9mIHByb3ZpbmNlcyByZWNvcmRlZCBuZWdhdGl2ZSBncm93dGggcmF0ZSBpbiBRMi0yMDIwLiBIb3dldmVyLCBzb21lIHByb3ZpbmNlcyB3ZXJlIGFibGUgdG8gbWFpbnRhaW4gcG9zaXRpdmUgZ3Jvd3RoIHJhdGUuIFRoZXkgYXJlIFdlc3QgUGFwdWEgYW5kIFBhcHVhIChmb3IgeW95IGdyb3d0aCkgYW5kIFdlc3QgTnVzYSBUZW5nZ2FyYSwgRWFzdCBOdXNhIFRlbmdnYXJhLCBQYXB1YSwgQ2VudHJhbCBTdWxhd2VzaSAoZm9yIHF0cSBncm93dGgpLg0KDQoNCiMgIEhvdyBlY29ub21pYyBzdHJ1Y3R1cmUgaXMgcmVsYXRlZCB0byBncm93dGggaW1wYWN0IGluIFEyLTIwMjA/DQpgYGB7cn0NCnRtX3NoYXBlKGNvdmlkX21hcDEpICsNCiAgdG1fcG9seWdvbnMoYygiZ2RwX3EyX3lveSIsICJUSFNfc2hhcmVfZ2RwIiksIGlkID0gInByb3ZpbmNlIiwgcGFsZXR0ZT1saXN0KCJSZWRzIiwgIkJsdWVzIiksIHRpdGxlPWMoIkdEUCBncm93dGggUTItMjAyMCAoeW95KSIsICJUSFMgc2hhcmUgdG8gR0RQICglKSIpKSArDQp0bV9maWxsKHN0eWxlPSJrbWVhbnMiKSsNCiAgdG1fbGF5b3V0KGxlZ2VuZC50aXRsZS5zaXplID0gMC42LA0KICAgICAgICAgIGxlZ2VuZC50ZXh0LnNpemUgPSAwLjUsDQogICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gYygibGVmdCIsImJvdHRvbSIpKQ0KYGBgDQoNClByb3ZpbmNlcyBsaWtlIEJhbGksIFlvZ3lha2FydGEgYW5kIEpha2FydGEgd2l0aCBoaWdoZXIgc2hhcmUgb2YgdHJhbnNwb3J0YXRpb24sIHRvdXJpc20gYW5kIHNlcnZpY2VzIHNlY3RvciBpbiBHRFAgc3VmZmVyIGxhcmdlciBuZWdhdGl2ZSBpbXBhY3QgaW4gZ3Jvd3RoLg0KDQojIEludGVyYWN0aXZlIG1hcA0KDQpgYGB7cn0NCnRtYXBfbW9kZSgidmlldyIpDQpgYGANCg0KYGBge3J9DQp0bV9zaGFwZShjb3ZpZF9tYXAxKSArIA0KICB0bV9maWxsKCJnZHBfcTJfeW95IiwNCiAgICAgICAgICBwYWxldHRlID0gInZpcmlkaXMiLA0KICAgICAgICAgIGlkPSJwcm92aW5jZSIsDQogICAgICAgICAgcG9wdXAudmFycz1jKCJjYXNlX2NoZyIsICJyYXRlX2NoZyIsICJqb2JfbG9zcyIsICJtb2Jfd29yayIsICJnZHBfcTJfeW95IiwgImdkcF9xMl9xdHEiKSkgKyANCiAgIHRtX2JvcmRlcnMoYWxwaGE9LjQpICsNCiAgICB0bV9sZWdlbmQob3V0c2lkZT1UUlVFKSArDQogIHRtX2xheW91dChmcmFtZSA9IEZBTFNFKSANCmBgYA0KDQoNCiMgSW50ZXJhY3RpdmUgZXhwbG9yYXRpb24NCg0KYGBge3IgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCmRmMSA8LSBkZiAlPiUgc2VsZWN0KC1jKDEpKSAlPiUgDQogIG11dGF0ZShQcm92ID0gcHJvdmluY2UpDQpgYGANCg0KYGBge3IgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCmRmMSA8LSBkZjEgJT4lDQogIHNlbGVjdChQcm92LCBldmVyeXRoaW5nKCkpICU+JSANCiAgc2VsZWN0KC1wcm92aW5jZSxwcm92aW5jZSkNCmBgYA0KDQpgYGB7ciBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KbGlicmFyeShyZWFkcikNCmRmX2RlZjEgPC0gcmVhZF9kZWxpbSgiZGZfZGVmMS5jc3YiLCAiOyIsIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwgDQogICAgdHJpbV93cyA9IFRSVUUpDQpkZl9kZWYxDQpgYGANCg0KYGBge3IgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCiMgUnVuIGl0IGluIHRoZSBjb25zb2xlDQpFeFBhbkQoDQogIGRmMSwNCiBkZl9kZWYgPSBkZl9kZWYxLA0KICBleHBvcnRfbmJfb3B0aW9uID0gVFJVRSwNCiB0aXRsZSA9ICJDb3ZpZC0xOSBwYW5kZW1pYyBhbmQgaXRzIGVjb25vbWljIGltcGFjdHM6IEFuIGludGVyYWN0aXZlIGV4cGxvcmF0aW9uIG9uIEluZG9uZXNpYW4gcHJvdmluY2lhbCBkYXRhIiwNCiAgYWJzdHJhY3QgPSBwYXN0ZSgiVGhlIGNvcm9uYXZpcnVzIChDb3ZpZC0xOSkgb3V0YnJlYWtzIHRoYXQgbGVkIHRvIGEgc2VyaW91cyBoZWFsdGggY3Jpc2lzIGhhcyBicm91Z2h0IG1ham9yIGRpc3J1cHRpb25zIG9uIHRoZSBlY29ub215IGluIG1hbnkgY291bnRyaWVzLCBpbmNsdWRpbmcgSW5kb25lc2lhLiBGaXJzdGx5IGlkZW50aWZpZWQgaW4gZWFybHkgTWFyY2ggMjAyMCwgdGhlIHZpcnVzIG91dGJyZWFrcyBoYXMgc3RhcnRlZCB0byBhZmZlY3QgSW5kb25lc2lhbiBlY29ub215IGluIFExLTIwMjAuIFlldCB0aGUgc2l0dWF0aW9uIGlzIGV2ZW4gd29yc2UgaW4gUTItMjAyMC4gSG93IGJhZCBpcyB0aGF0PyBGaW5kIG91dCBtb3JlIHdpdGggdGhpcyB3ZWIgYXBwbGljYXRpb24sIHdoaWNoIGlzIGludGVuZGVkIHRvIHByb3ZpZGUgaGFuZHkgaW50ZXJhY3RpdmUgZXhwbG9yYXRpb24gb24gdGhlIGVjb25vbWljIGltcGFjdHMgb2YgQ292aWQtMTkgYWNyb3NzIEluZG9uZXNpYW4gcHJvdmluY2VzLikNCjwvYnI+DQo8L2JyPg0KU3VnZ2VzdGVkIGNpdGF0aW9uOiBIYXJyeSwgQS4gQ2FuaSwgUi5NLiBNZW5kZXosIEMuICgyMDIwKS4gQ292aWQtMTkgcGFuZGVtaWMgYW5kIGl0cyBlY29ub21pYyBpbXBhY3RzOiBBbiBpbnRlcmFjdGl2ZSBleHBsb3JhdGlvbiBvbiBJbmRvbmVzaWFuIHByb3ZpbmNpYWwgZGF0YSIpDQogICkNCmBgYA0KDQoNCmBgYHtyIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9DQpjb25maWdfbGlzdF9mcm9tUkRTIDwtIHJlYWRSRFMoImNvdmlkMTkuUkRTIikNCmBgYA0KDQpgYGB7ciBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KIyBSdW4gaXQgaW4gdGhlIGNvbnNvbGUNCkV4UGFuRCgNCiAgZGYxLA0KICBkZl9kZWYgPSBkZl9kZWYxLA0KICBleHBvcnRfbmJfb3B0aW9uID0gVFJVRSwNCiAgY29uZmlnX2xpc3QgPSBjb25maWdfbGlzdF9mcm9tUkRTLA0KICB0aXRsZSA9ICJDb3ZpZC0xOSBwYW5kZW1pYyBhbmQgaXRzIGVjb25vbWljIGltcGFjdHM6IEFuIGludGVyYWN0aXZlIGV4cGxvcmF0aW9uIG9uIEluZG9uZXNpYW4gcHJvdmluY2lhbCBkYXRhIiwNCiAgYWJzdHJhY3QgPSBwYXN0ZSgiVGhlIGNvcm9uYXZpcnVzIChDb3ZpZC0xOSkgb3V0YnJlYWtzIHRoYXQgbGVkIHRvIGEgc2VyaW91cyBoZWFsdGggY3Jpc2lzIGhhcyBicm91Z2h0IG1ham9yIGRpc3J1cHRpb25zIG9uIHRoZSBlY29ub215IGluIG1hbnkgY291bnRyaWVzLCBpbmNsdWRpbmcgSW5kb25lc2lhLiBGaXJzdGx5IGlkZW50aWZpZWQgaW4gZWFybHkgTWFyY2ggMjAyMCwgdGhlIHZpcnVzIG91dGJyZWFrcyBoYXMgc3RhcnRlZCB0byBhZmZlY3QgSW5kb25lc2lhbiBlY29ub215IGluIFExLTIwMjAuIFlldCB0aGUgc2l0dWF0aW9uIGlzIGV2ZW4gd29yc2UgaW4gUTItMjAyMC4gSG93IGJhZCBpcyB0aGF0PyBGaW5kIG91dCBtb3JlIHdpdGggdGhpcyB3ZWIgYXBwbGljYXRpb24sIHdoaWNoIGlzIGludGVuZGVkIHRvIHByb3ZpZGUgaGFuZHkgaW50ZXJhY3RpdmUgZXhwbG9yYXRpb24gb24gdGhlIGVjb25vbWljIGltcGFjdHMgb2YgQ292aWQtMTkgYWNyb3NzIEluZG9uZXNpYW4gcHJvdmluY2VzLikNCjwvYnI+DQo8L2JyPg0KU3VnZ2VzdGVkIGNpdGF0aW9uOiBIYXJyeSwgQS4gQ2FuaSwgUi5NLiBNZW5kZXosIEMuICgyMDIwKS4gQ292aWQtMTkgcGFuZGVtaWMgYW5kIGl0cyBlY29ub21pYyBpbXBhY3RzOiBBbiBpbnRlcmFjdGl2ZSBleHBsb3JhdGlvbiBvbiBJbmRvbmVzaWFuIHByb3ZpbmNpYWwgZGF0YSIpDQogICkNCmBgYA0KDQpGb3IgZnVydGhlciBpbnRlcmFjdGl2ZSBkYXRhIGV4cGxvcmF0aW9uLCBwbGVhc2UgdmlzaXQgdGhlIGxpbmsgYmVsb3c6IA0KDQpodHRwczovL2hhZ2ludGEuc2hpbnlhcHBzLmlvL0NvdmlkMTlfZWNvbl9pbXBhY3RzX3JlZ19JbmRvbmVzaWEvDQoNCg0KIyBSZWZlcmVuY2VzDQoNCi0gPGh0dHBzOi8vam9hY2hpbS1nYXNzZW4uZ2l0aHViLmlvL0V4UGFuRGFSLz4NCi0gPGh0dHBzOi8vY3Jhbi5yLXByb2plY3Qub3JnL3dlYi9wYWNrYWdlcy9FeFBhbkRhUi9pbmRleC5odG1sPg0KDQo=